﻿using System.Windows;

namespace Matchingo.Common.Types.Interfaces
{
    /// <summary>
    /// The primary container for the game must provide a given set of abilities, this interface defines the minimum 
    /// required abilities of the UI shell which is the root element of the game
    /// </summary>
    public interface IGameUIContainer
    {
        /// <summary>
        /// A UIElement which blocks out the entire UI - this is what all UI elements hide behind while initializing, 
        /// it typically will be hidden as part of the last steps of startup
        /// </summary>
        UIElement UIMaskingElement { get; }

        /// <summary>
        /// A UIElement which blocks out all input from the user on the game space - this is used during replays and
        /// AI games to prevent the user from interacting with the game - this UIElement will be totally transparent 
        /// </summary>
        UIElement InputMaskingElement { get; }

        /// <summary>
        /// A UIElement which blocks out all input behind the menu system when it is up
        /// </summary>
        UIElement MenuMaskingElement { get; }
    }
}
